<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Facturas extends CI_Controller {

	public function __construct(){
        parent::__construct();        
        
        if($this->session->userdata('id_usuario') == ''){
            redirect(base_url());
        }      
    }  

	public function index()
	{
		//parent::__construct();		
		$this->load->model('factura_model');

		$id_usuario = $this->session->userdata('id_usuario');
		$dataMenu0=$this->seguridad_model->buscar_menus($id_usuario, 1);//id_usuario, id_sistema
		$data['dataMenu'] = drawMenu($dataMenu0);

		$data['proveedores'] = $this->factura_model->obtener_proveedores();
		$data['fuenteFondo'] = $this->factura_model->obtener_fuentes_fondo();
		$data['secciones'] = $this->factura_model->obtener_secciones();
		$data['facturas'] = $this->factura_model->obtener_facturas();

		$this->load->view('factura_view', $data);
	}

	public function buscar()
	{
		//parent::__construct();		
		$this->load->helper('menu_helper');
		$this->load->helper(array('url','form')); 
		$this->load->model('factura_model');		

		//$this->session->set_userdata('id_usuario', '1');
		$id_usuario = $this->session->userdata('id_usuario');
		$dataMenu0=$this->seguridad_model->buscar_menus($id_usuario, 1);//id_usuario, id_sistema
		$data['dataMenu'] = drawMenu($dataMenu0);

		$data['proveedores'] = $this->factura_model->obtener_proveedores();
		$data['fuenteFondo'] = $this->factura_model->obtener_fuentes_fondo();
		$data['secciones'] = $this->factura_model->obtener_secciones();

		$dato = trim($this->input->post('numero_factura_buscar'));
		$data['facturas'] = $this->factura_model->obtener_facturas($dato);
		
		$this->load->view('factura_view', $data);
	}	

	public function liquidar($id_factura)
	{
		//parent::__construct();
		$this->load->model('factura_model');	
		$this->factura_model->liquidar_facturas($id_factura);
		$this->index();
	}		

	public function registro()
	{
		$this->load->model('factura_model');			

		$fecha_factura=date("Y-m-d",strtotime($this->input->post('fecha_factura')));

		$data = array(
		               'numero_factura' => trim($this->input->post('numero_factura')),
		               'id_proveedor' => $this->input->post('id_proveedor'),
		               'numero_factura' => trim($this->input->post('numero_factura')),
		               'fecha_factura' => $fecha_factura,
		               'fecha_registro_factura' => date("Y-m-d"),
		               'id_estado_factura' => 1,
		               'id_fuente_fondo' => $this->input->post('id_fuente_fondo'),
		               'numero_compromiso' => trim($this->input->post('numero_compromiso')),
		               'numero_orden_compra' => trim($this->input->post('numero_orden_compra')),
		               'id_usuario' => $this->session->userdata('id_usuario'),
		               'nombre_proveedor' => trim($this->input->post('nombre_proveedor')),
		               'id_seccion' => $this->input->post('id_seccion')
		            );
		$this->factura_model->guardar_facturas($data);
		$this->index();
		//$this->db->insert('sib_factura', $data); 
	}			

	public function detalle($id_factura)
	{
		$id_usuario = $this->session->userdata('id_usuario');
		$dataMenu0=$this->seguridad_model->buscar_menus($id_usuario, 1);//id_usuario, id_sistema
		$data['dataMenu'] = drawMenu($dataMenu0);

		$this->load->model('factura_model');
		$data['detalle_factura'] = $this->factura_model->obtener_detalle_factura($id_factura);	
		$data['id_factura'] = $id_factura;

		$data['lista_productos'] = $this->factura_model->obtener_lista_productos($id_factura);

		$this->load->view('factura_detalle_view', $data);
	}				

	public function modif($id_factura)
	{
		$id_usuario = $this->session->userdata('id_usuario');
		$dataMenu0=$this->seguridad_model->buscar_menus($id_usuario, 1);//id_usuario, id_sistema
		$data['dataMenu'] = drawMenu($dataMenu0);

		$this->load->model('factura_model');
		$data['encabezado_factura'] = $this->factura_model->obtener_enbacezado_factura($id_factura);		
		
		$data['proveedores'] = $this->factura_model->obtener_proveedores();
		$data['fuenteFondo'] = $this->factura_model->obtener_fuentes_fondo();
		$data['secciones'] = $this->factura_model->obtener_secciones();
		$data['facturas'] = $this->factura_model->obtener_facturas();

		$this->load->view('factura_modificar_view', $data);
	}					

	public function modificar()
	{

		$fecha_factura=date("Y-m-d",strtotime($this->input->post('fecha_factura')));

		$data = array(
					   'numero_factura' => trim($this->input->post('numero_factura')),
		               'id_proveedor' => $this->input->post('id_proveedor'),
		               'fecha_factura' => $fecha_factura,		
		               'id_estado_factura' => 1,
		               'id_fuente_fondo' => $this->input->post('id_fuente_fondo'),
		               'numero_compromiso' => trim($this->input->post('numero_compromiso')),
		               'numero_orden_compra' => trim($this->input->post('numero_orden_compra')),
		               'id_usuario' => $this->session->userdata('id_usuario'),
		               'nombre_proveedor' => trim($this->input->post('nombre_proveedor')),
		               'id_seccion' => $this->input->post('id_seccion'),
		               'id_actualiza' => $this->session->userdata('id_usuario'),
		               'fecha_actualiza' => date("Y-m-d")
		            );

		$this->load->model('factura_model');
		$this->factura_model->modificar($data);		
		$this->index();
	}	

	/*public function detalle_cargar($id_factura_detalle)//aun no utilizado
	{
		$id_usuario = $this->session->userdata('id_usuario');
		$dataMenu0=$this->seguridad_model->buscar_menus($id_usuario, 1);//id_usuario, id_sistema
		$data['dataMenu'] = drawMenu($dataMenu0);

		$this->load->model('factura_model');
		$data['detalle_factura'] = $this->factura_model->obtener_detalle_factura($id_factura);	
		$data['id_factura'] = $id_factura;
		$this->load->view('factura_detalle_view', $data);
	}*/

	public function acta($id_factura)
	{
		$this->load->model('factura_model');
		$data['encabezado_factura'] = $this->factura_model->obtener_enbacezado_factura($id_factura);	
		$data['id_factura'] = $id_factura;
		$data['detalle_factura'] = $this->factura_model->obtener_detalle_factura($id_factura);

		$this->load->view('factura_acta_view', $data);
	}	

	public function liquidar_reversa($id_factura)
	{
		//parent::__construct();
		$this->load->model('factura_model');	
		$this->factura_model->liquidar_reversa($id_factura);
		$this->index();
	}

	public function detalle_registro()
	{
		$this->load->model('factura_model');			

		$fecha_factura=date("Y-m-d",strtotime($this->input->post('fecha_factura')));
		$total=(trim($this->input->post('cantidad')))*(trim($this->input->post('precio')));

		$data = array(
		               'cantidad' => trim($this->input->post('cantidad')),
		               'precio' => trim($this->input->post('precio')),
		               'id_factura' => trim($this->input->post('id_factura')),
		               'total' => $total,
		               'id_producto_has_especifico' => trim($this->input->post('id_producto_has_especifico')),
		               'id_estado' => 1,		               
		               'id_guarda' => $this->session->userdata('id_usuario'),
		               'fecha_guarda' => date("Y-m-d")
		            );
		$this->factura_model->detalle_registro($data);
		$this->detalle($this->input->post('id_factura'));
		//$this->db->insert('sib_factura', $data); 
	}							
	public function detalle_factura_eliminar($id_detalle)
	{
		$this->load->model('factura_model');
		$data['encabezado_factura'] = $this->factura_model->detalle_factura_eliminar($id_detalle);	
		//$this->detalle($this->input->get_post('id_factura', TRUE));
		$this->detalle($this->uri->segment(4));

	}		
}